A modeling tool is a tool that handles models in a formalized way. When the model is stored in a database, this makes possible structured access and storing of data. For example, modeling tools can be used to develop and describe complicated technical devices or systems that are to be manufactured in the manufacturing industry. By models is in this case meant a representation of the device or system that is to be manufactured. The model is described by allowing objects to relate to each other. An object in the database may potentially be linked, directly or indirectly, to every other object in the database.
WO 2004/057500 discloses a modeling tool comprising a database server with a memory area, a processor, a set of rules in the processor for structured storage and accessing of a database in the memory area, and an incoming and an outgoing channel via which the processor is designed to handle the incoming and outgoing information to and from the memory area. The modeling tool comprises, in addition, a set of objects which are intended to be stored and represented in the database and a set of connection elements which describe the relationship between associated objects. An object is here an encapsulation of sets of data, elements and operations.
As a user works with a model, the associated objects are uploaded to a client and stored in the memory area at the client (e.g. the cache memory) to enable efficient access to the model. The client data model thus contains objects retrieved from the server. To facilitate fast access to a working set of objects, that is all objects momentarily in use by the user, the following can be performed:                The client data model may make an automatic request for the object to the server if a requested object is missing in the client data model.        The working set can in some instances be predicted or defined without explicit user actions, for instance based on working set of last log in, based on rules decided by the user or based on properties of a view, which is mainly dependent on what the view needs in order to be completed. The rules for creating a working set can effectively be based on the types of object relations and object types, since this kind of classification corresponds to the principles used in application views and user preferences.        
The rules are normally implemented in software of application views, that is in the client software. The following principle applies:                A client view requests one or more objects        The view then requests more information of the object, including relations to other objects which are then requested.        
The rules for flexible views may be explicit and editable:                A view requests one or many objects.        The user may navigate further in the view, requesting more objects.        The view may include more objects based on explicit rules according to the preferences of the user.        
The current concept is adapted to use by an interactive user where the user may navigate and select to open related objects. This means that the rules are applied on the client side.
Objects are viewed and manipulated through an application user interface based on selections made by the user and properties of the view, which may request objects related to the object requested by the user, in order to complete a view.
The objects that should be uploaded to the client cache are identified by the client through a set of rules in the processor. This means that the client first sends an initial request to the database server, which returns the requested object and any connection elements associated therewith to the client. Based on the set of rules in the processor, the client then determines which of these connection elements should be shown and which related objects that are to be uploaded from the server database. This procedure is repeated for each additional object uploaded to the client, and additional objects are sent from the server to the client, until all required objects have been uploaded to the client.
A model in a typical development project in the manufacturing industry contains a very large number of objects, often hundreds of thousands.
Furthermore, there are typically a very large number of connections between objects, often tens of thousands.
Thus, uploading a model from the server to the client tend to be a time consuming procedure that may take minutes, or even hours.